In computer architecture, a bus is a communication system that transfers data between components inside a computer, or between elements of a computer. The expression generally covers all related hardware components (wire, optical fiber). Modern computer buses can use both parallel and bit serial connections, and can be wired in either a multidrop (electrical parallel) or daisy chain topology, or connected by switched hub.
Network on chip or network on a chip (NoC or NOC) is a communication subsystem on an integrated circuit (IC), typically between cores or elements in a system on a chip (SoC). NoCs can span synchronous and asynchronous clock domains or use unclocked asynchronous logic. NoC technology generally applies networking theory and methods to on-chip communication and brings notable improvements over conventional bus interconnections. NoC improves the scalability of SoCs, and the power efficiency of complex SoCs compared to other designs.
Traditionally, ICs may have been designed with dedicated point-to-point connections, with one wire dedicated to each signal. For large designs, in particular, this has several limitations from a physical design viewpoint. The wires occupy much of the area of the chip, and interconnects may dominate both performance and dynamic power dissipation, as signal propagation in wires across the chip requires multiple clock cycles.
Further, traditional network architectures have attempted to employ distributed arbitration, but distributed arbitration can lead to routing inefficiencies and complications. Traditional networks have suffered from variable or unknown latencies between a message's source and target. For example, if a message is sent during a period of low congestion the latency may be low, but if sent during a period of high congestion the latency may be great. As such, the latency through the network may be unknown at the time the sender places the data or message on the network. Conventional solutions are typically geared to lowering the latency of the network, or increasing the throughput of the network.